 
package com.hs.common.page;

import java.util.Hashtable;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
 
public class PageParam {

	/**   当前页数码 */
	private int currentPageNo = 1;

	/**  每页记录数，默认为10条记录 */
	private int perPageCount = 5;

	/**  页面查询条件的完成的sql语句 */
	private String searchSql = "";

	/**  基本的路径  */
	private String basePath = "";


	/**  用来保存要传递的参数值的哈希Table  */
	private Map conditionMap = new Hashtable();
	
	
	/** 用来保存sql中的构造参数进行在ｑｕｅｙ中设置对应的参数  */
	private Map paraMap=new Hashtable();

	//	public PageParam() {
	//
	//	}

	/**
	 * 构造方法
	 * @param request
	 */
	public PageParam(HttpServletRequest request, String basePath) { 
		//根据不同分辨调整显示行数
//		this.setPerPageCount(this.getCurRecordCount(request.getSession()));

		try {
			if (request.getParameter("currentPageNo") != null) {
				this.currentPageNo = Integer.parseInt(request
						.getParameter("currentPageNo"));
			}
			if (request.getParameter("perPageCount") != null)
				this.perPageCount = Integer.parseInt(request
						.getParameter("perPageCount"));
		} catch (NumberFormatException ex) {
//			ex.printStackTrace();
		}
		if (request.getParameter("searchSql") != null
				&& request.getParameter("searchSql").length() > 0) {
			this.searchSql = request.getParameter("searchSql");
		}
		String path1 = request.getContextPath();
		String basePath1 = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path1+"/";
		this.basePath = basePath1+basePath;
		
		if(this.currentPageNo<=0)
			this.currentPageNo=1;
	}

	public PageParam() {
		// TODO 自动生成构造函数存根
	}

	/**
	 * @return 返回 basePath。
	 */
	public String getBasePath() {
		System.out.println("basePath:" + basePath);
		return basePath;
	}

	/**
	 * @param basePath 要设置的 basePath。
	 */
	public void setBasePath(String basePath) {
		this.basePath = basePath;
	}

	public int getCurrentPageNo() {
		return currentPageNo;
	}

	public void setCurrentPageNo(int currentPageNo) {
		this.currentPageNo = currentPageNo;
	}

	public int getPerPageCount() {
		return perPageCount;
	}

	public void setPerPageCount(int perPageCount) {
		this.perPageCount = perPageCount;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自动生成方法存根

	}

	/**
	 * @return 返回 searchSql。
	 */
	public String getSearchSql() {
		return searchSql;
	}

	/**
	 * @param searchSql 要设置的 searchSql。
	 */
	public void setSearchSql(String searchSql) {
		this.searchSql = searchSql;
	}



	/**
	 * @return Returns the conditionMap.
	 */
	public Map getConditionMap() {
		return conditionMap;
	}

	/**
	 * 给这个对象的hashtable中添加需要传递的查询条件。
	 * 功能:
	 * 作者: shaokun305
	 * 创建日期:Mar 8, 2006
	 * @param key
	 * @param obj
	 * @return
	 */
	public PageParam pushCondition(String key, Object obj) {
		this.conditionMap.put(key, obj);
		return this;

	}

	/**
	 * @param conditionMap The conditionMap to set.
	 */
	public void setConditionMap(Map conditionMap) {
		this.conditionMap = conditionMap;
	}

	/**
	 * @return 返回 paraMap。
	 */
	public Map getParaMap() {
		return paraMap;
	}

	/**
	 * @param paraMap 要设置的 paraMap。
	 */
	public void setParaMap(Map paraMap) {
		this.paraMap = paraMap;
	}



}
